//
//  TLMainTabBarController.swift
//  TLSinaWeiBo
//
//  Created by 谭亮 on 16/5/11.
//  Copyright © 2016年 tanliang. All rights reserved.
//

import UIKit

class TLMainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //:->1.定义闭包
        let composeCallback = { () -> () in
            //:TODO:Modal出控制器
            //print("Modal出控制器")
        }
        
        let mainTabBar = TLMainTabBar()
        //:->2.传递闭包
        mainTabBar.composeCallback = composeCallback
        
        //:tabBar是UITabBar类的一个属性 只有get方法 是只读的属性,没有set方法 不能直接赋值
        //:使用KVC,KVC会先去找set方法,如果没有set方法会去找_tabBar的成员变量.KVC使用运行时找
        //:KVC的赋值方法
        setValue(mainTabBar, forKey: "tabBar") //:forkey是要设置的那个属性 value是你要设置的值
        
        
        self.setupChilderViewController()
        //:此方法直接可以设置tabBar的文本文字颜色,但图片颜色不能设置
//        tabBar.tintColor = UIColor.orangeColor()
    }
    
    //:设置tabBar的子控制器
    func setupChilderViewController() {
        //:1.首页
        let homeVC = TLHomeViewController()
        self.addChildViewController(homeVC, titles: "首页", imageName: "tabbar_home")
        
        //:2.消息
        let messageVC = TLMessageViewController()
        self.addChildViewController(messageVC, titles: "消息", imageName: "tabbar_message_center")
        
        //:3.发现
        let discoverVC = TLDiscoverViewController()
        self.addChildViewController(discoverVC, titles: "发现", imageName: "tabbar_discover")
        
        //:4.我
        let profileVC = TLProfileViewController()
        self.addChildViewController(profileVC, titles: "我", imageName: "tabbar_profile")
        
//        //:1.首页
//        let homeVC = TLHomeViewController()
//        //:设置标题
//        homeVC.title = "首页"//:设置title的内容后不仅会在tabBar上面显示,还会在导航栏上面显示
//        //:而设置这个homeVC.tabBarItem.title = "首页" 就只会在tabBar上面显示
//        //:设置tabBar图片
//        homeVC.tabBarItem.image = UIImage(named: "tabbar_home")
//        //:包装导航控制器
//        self.addChildViewController(UINavigationController(rootViewController: homeVC))
//        
//        //:2.消息
//        let messageVC = TLMessageViewController()
//        messageVC.title = "消息"
//        messageVC.tabBarItem.image = UIImage(named: "tabbar_message_center")
//        self.addChildViewController(UINavigationController(rootViewController: messageVC))
//        
//        //:3.发现
//        let discoverVC = TLDiscoverViewController()
//        discoverVC.title = "发现"
//        discoverVC.tabBarItem.image = UIImage(named: "tabbar_discover")
//        self.addChildViewController(UINavigationController(rootViewController: discoverVC))
//        
//        //:4.我
//        let profileVC = TLProfileViewController()
//        profileVC.title = "我"
//        profileVC.tabBarItem.image = UIImage(named: "tabbar_profile")
//        self.addChildViewController(UINavigationController(rootViewController: profileVC))
    }
    //:方法描述->添加子控制器,并设置标题和图片名称,并且包装导航控制器
    func addChildViewController(controller: UIViewController,titles: String, imageName: String ) {
        //:设置标题:
        controller.title = titles
        //:设置tabBar图片
        controller.tabBarItem.image = UIImage(named: imageName)
        //->需求是要让tabBar有高亮图片
        controller.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)//:进行高亮图片拼接后会颜色会填充图片,括号外的一步不想让其渲染 之后就设置图片的渲染模式,有三种渲染模式case Automaticcase:自动用系统 AlwaysOriginalcase:按图片来,不进行渲染  AlwaysTemplat:
        //:->需求设置文字选中时的颜色    设置标题文本属性
        controller.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor()], forState: UIControlState.Selected)
        //:包装导航控制器
        self.addChildViewController(UINavigationController(rootViewController: controller))
    }

}
